/*
 * Powered By fanrenqij.com
 * Since 2017 - 2017
 */

package com.fanrenqiji.modules.business.course.service;

import com.fanrenqiji.common.persistence.Page;
import com.fanrenqiji.modules.business.course.vo.CoursePageVO;
import com.fanrenqiji.modules.business.course.vo.CourseVO;
import com.fanrenqiji.modules.business.event.vo.EventVO;
import com.fanrenqiji.modules.business.eventcase.vo.EventCaseVO;

import java.util.List;

/**
 * 课程信息业务逻辑接口
 */
public interface CourseService {
    /**
     * 插入
     *
     * @param course 插入的对象
     * @return 插入数据
     */
    public CourseVO insert(CourseVO course);


    /**
     * 批量插入
     *
     * @param list 数据列表
     * @return 插入数据条数
     */
    public void insertList(List<CourseVO> list);


    /**
     * 修改
     *
     * @param course 修改的数据
     * @return 修改的数据条数
     */
    public CourseVO update(CourseVO course, String knowledgersid[], String gradeids[]);


    /**
     * 删除
     *
     * @param id 数据标识
     * @return 删除的数据条数
     */
    public void delete(String id);


    /**
     * 查询所有数据
     *
     * @return 数据列表
     */
    public List<CourseVO> getAll();


    /**
     * 通过条件查询数据列表
     *
     * @param course 查询条件
     * @return 数据列表
     */
    public List<CourseVO> getList(CourseVO course);


    /**
     * 通过id查询数据
     *
     * @param id 数据标识
     * @return 数据对象
     */
    public CourseVO get(String id);

    /**
     * 根据条件分页查询
     *
     * @param page
     * @param course
     * @return
     */
    public Page<CoursePageVO> findCourseByPage(Page<CoursePageVO> page, CoursePageVO course);

    /**
     * 课程里面添加或者修改指定的课程详情
     *
     * @param courseVO
     * @param courseitemsids
     */
    public void savacourseitem(CourseVO courseVO, String courseitemsids, String courseitemsids2);

    /**
     * 根据课程 查询事件实例中事件中的id为1的集合
     *
     * @param courseVO
     * @return
     */
    public List<EventCaseVO> geteventcase(CourseVO courseVO);

    /**
     * 查询事件id bu为1的事件实例
     *
     * @return
     */
    public List<EventCaseVO> geteventcasene(CourseVO courseVO);

    /**
     * 进行校验的方法 返回值是一个boolean
     * @param courseitemsids
     * @return
     */
    public Integer jiaoyanyinpin(String courseitemsids);

    /**
     * 查看当前事件集合的方法
     * @param courseVO
     * @return
     */
    public List<EventVO> findEventByCourse(CourseVO courseVO);
}
